home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 5 / Gekikoh Dennoh Club Vol. 5 (Japan).7z / Gekikoh Dennoh Club Vol. 5 (Japan) (Track 01).bin / internet / xip / iijppp.lzh / HOWTO next >
Text File  |  1994-10-16  |  11KB  |  362 lines

  1.  
  2.         Using User Process PPP
  3.  
  4.           Toshiharu OHNO
  5.          tony-o@iij.ad.jp
  6.  
  7. Sorry, but no real english document is not available, yet.
  8. Here, I just give you example scenario, line start with -- is little
  9. explanation.  For further details, please refer japanese manual (doc/*.tex)
  10. or e-mail to me.
  11.  
  12. 1. Manual dialing
  13.  
  14.    % ppp
  15.    User Process PPP written by Toshiharu OHNO.
  16.    -- You can specify modem and device name using following commands.
  17.    ppp> set line /dev/tty00
  18.    ppp> set speed 38400
  19.    ppp> set parity even
  20.    ppp> show modem
  21.    -- Modem related parameters are shown in here
  22.    ppp>
  23.    -- Use term command to talk with your modem
  24.    ppp> term
  25.    at
  26.    OK
  27.    atdt123456
  28.    CONNECT
  29.  
  30.    login: ppp
  31.    Password:
  32.    -- PPP started in remote side ---
  33.  
  34.    -- When peer start to speak PPP, the program will detect it
  35.    -- automatically and back to command mode.
  36.    ppp>
  37.    PPP>
  38.  
  39.    -- NOW, you are get connected !! Note that prompt has changed to
  40.    -- capital letters
  41.    PPP> show lcp
  42.  
  43.    -- You'll see LCP status --
  44.  
  45.    PPP> show ipcp
  46.  
  47.    -- You'll see IPCP status --
  48.    -- At this point, your machine has host route to the peer.
  49.    -- If your want to add default route entry, then enter
  50.  
  51.    PPP> add 0 0 HISADDR
  52.  
  53.    -- Here string `HISADDR' represents IP address of connected peer.
  54.  
  55.    PPP>
  56.    -- Use applications (i.e. ping, telnet, ftp) in other windows
  57.  
  58.    PPP> show log
  59.  
  60.    -- Gives you some logging messages
  61.  
  62.    PPP> close
  63.  
  64.    -- Connection is closed, and modem will be hanged.
  65.  
  66.    ppp> quit
  67.    %
  68.  
  69. 2. Automatic dialing
  70.  
  71.  To use automatic dialing, you must prepare Dial and Login chat script.
  72.  See example definition found in ppp.conf.
  73.  
  74.  Format of ppp.conf is pretty simple.
  75.  
  76.   o Each line contains one command, label or comment.
  77.  
  78.   o Line stating with # is treated as a comment line.
  79.  
  80.   o Label name has to start from first column and should be followed by
  81.     colon (:).
  82.  
  83.   o Command line must contains space or tab at first column.
  84.  
  85.  If ppp.conf is ready, specify destination label name when you invoke ppp.
  86.  Commands associated with destination label is executed when ppp command is
  87.  invoked. Note that commands associated with ``default'' label is ALWAYS
  88.  executed.
  89.  
  90.  Once connection is made, you'll find that prompt is changed to
  91.  capital PPP>.
  92.  
  93.    % ppp pm2
  94.    ...
  95.    ppp> dial
  96.    dial OK!
  97.    login OK!
  98.    PPP>
  99.  
  100.  If ppp.linkup file is available, its contents are executed when
  101.  PPP link is connected.  See example which add default route.
  102.  The string HISADDR matches with IP address of connected peer.
  103.  
  104. 3. On demand dialing
  105.  
  106.  To play with demand dialing, you must use -auto option. Also, you must
  107.  specify destination label with proper setup in ppp.conf. It must contain
  108.  ``ifaddr'' command to define peer's IP address. (refer example/ppp.conf)
  109.  
  110.    % ppp -auto pm2demand
  111.    ...
  112.    %
  113.  
  114.  When -auto is specified, PPP program works as a daemon.
  115.  But, you are still able to use command features to check
  116.  its behavior.
  117.  
  118.   % telnet localhost 3000
  119.   ...
  120.   PPP> show ipcp
  121.   ....
  122.  
  123.  Each ppp has associated port number, which is computed as
  124.  "3000 + tunnel_device_number". If 3000 is not good base number,
  125.  edit defs.h.
  126.  
  127.  When packet toward to remote network is detected, PPP will take
  128.  dialing action and try to connect with the peer. If dialing is failed,
  129.  program will wait for 30 seconds. Once this hold time expired, another
  130.  trigger packet cause dialing action. Note that automatic re-dialing is
  131.  NOT implemented.
  132.  
  133.  To terminate program, use
  134.  
  135.   PPP> close
  136.   ppp> quit all
  137.  
  138.  Simple ``quit'' command will terminates telnet connection,
  139.  but PPP program itself is not terminated. You must use ``quit all''
  140.  to terminate the program running as daemon.
  141.  
  142. 4. Packet filtering
  143.  
  144.  This implementation supports packet filtering. There are three filters;
  145.  ifilter, ofilter and dfilter. Here's some basics.
  146.  
  147.  o Filter definition has next syntax.
  148.  
  149.     set filter-name rule-no action [src_addr/src_width] [dst_addr/dst_width]
  150.        [proto [src [lt|eq|gt] port ] [dst [lt|eq|gt] port] [estab]
  151.  
  152.    a) filter-name should be ifilter, ofilter or dfiler.
  153.    
  154.    b) There are two actions permit and deny. If given packet is matched
  155.       against the rule, action is taken immediately.
  156.  
  157.    c) src_width and dst_width works like a netmask to represent address range.
  158.  
  159.    d) proto must be one of icmp, udp or tcp.
  160.  
  161.  o Each filter can hold upto 20 rules. Rule number starts from 0.
  162.    Entire rule set is not effective until rule 0 is defined.
  163.  
  164.  o If no rule is matched with a packet, that packet will be discarded
  165.    (blocked).
  166.  
  167.  o Use ``set filer-name -1'' to flush all rules.
  168.  
  169.  See example/ppp.conf.filter.
  170.  
  171. 5. Receive incoming PPP connection
  172.  
  173.  To receive incoming PPP connection request, follow next steps.
  174.  (Here, example is prepared for BSDI users.)
  175.  
  176.  a) Prepare bidir entry in your /etc/gettytab
  177.  
  178.     bidir.38400:\
  179.         :bi:ap:hf:tc=38400-baud:
  180.  
  181.  b) Edit /etc/ttys to enable getty on the port where modem is attached.
  182.  
  183.     tty00  "/usr/libexec/getty bidir.38400" dialup on
  184.  
  185.     Don't forget to send HUP signal to init process.
  186.  
  187.     # kill -HUP 1
  188.  
  189.  c) Prepare account for incoming user.
  190.  
  191.     ppp:*:21:0:PPP Login User:/home/ppp:/usr/local/bin/ppplogin
  192.  
  193.  d) Prepare minimum necessary environment for ppp user.
  194.  
  195.     # mkdir /home/ppp
  196.     # chown ppp /home/ppp
  197.     # cd ~ppp
  198.     # touch .hushlogin
  199.     # cp /etc/ppp.conf .ppp.conf
  200.     # chown ppp .hushlogin .ppp.conf
  201.  
  202.  e) Create /usr/local/bin/ppplogin file with next contents.
  203.  
  204.     #!/bin/sh
  205.     /usr/local/bin/ppp -direct
  206.  
  207.     You can specify label name for further control.
  208.  
  209.     Direct mode (-direct) lets PPP to work with standard in and out.
  210.     Again, you can telnet to 3000 to get command mode control.
  211.  
  212. 6. Setting Idle Timer
  213.  
  214.  To check/set idletimer, use ``show timeout'' and ``set timeout'' command.
  215.  
  216.     Ex. ppp> set timeout 600
  217.  
  218.  Timeout period is measured in secs and default value is 180 or 3 min.
  219.  To disable idle timer function, use ``set timeout 0''.
  220.  
  221.  In -auto mode, idle timeout cause PPP session closed. However, PPP program
  222.  itself is keep running. Another trigger packet cause dialing action.
  223.  
  224. 7. Predictor-1 compression
  225.  
  226.  This version supports CCP and Predictor type 1 compression based on
  227.  current IETF-draft specs. As a default behavior, PPP will propose
  228.  to use (or willing to accept) this capability and use it if peer
  229.  agrees (or requests).
  230.  
  231.  To disable CCP/predictor function completely, use ``disable pred''
  232.  and ``deny pred'' command.
  233.  
  234. 8. Controlling IP address
  235.  
  236.  PPP uses IPCP to negotiate IP addresses. Each side of node informs IP
  237.  address that willing to use to the peer, and if requested IP address
  238.  is acceptable, PPP returns ACK to requester. Otherwise, PPP returns NAK
  239.  to suggest the peer to use different IP address. When both side of nodes
  240.  agrees to accept the received request (and send ACK), IPCP is reached to
  241.  open state and network level connection is established.
  242.  
  243.  To control, this IPCP behavior, this implementation has ``set ifaddr''
  244.  to define MY and HIS IP address.
  245.  
  246.     ifaddr src_addr dst_addr
  247.  
  248.  Where, src_addr is the IP address that my side is willing to use, and
  249.  dst_addr is the IP address which his side should use.
  250.  
  251.     ifaddr 192.244.177.38 192.244.177.2
  252.  
  253.  For example, above specification means
  254.  
  255.   o I strongly want to use 192.244.177.38 as my side. I'll disagree
  256.     when peer suggest me to use other addresses.
  257.  
  258.   o I strongly insists peer to use 192.244.177.2 as his side address.
  259.     I don't permit him to use any IP address but 192.244.177.2.
  260.     When peer request other IP address, I always suggest him to use
  261.     192.244.177.2.
  262.  
  263.  This is all right, when each side has pre-determined IP address.
  264.  However, it is often the case one side is acting as a server which
  265.  controls IP address and the other side should obey the direction from him.
  266.  
  267.  In order to allow more flexible behavior, `ifaddr' command allows user
  268.  to specify IP address more loosely.
  269.  
  270.     ifaddr 192.244.177.38/24 192.244.177.2/20
  271.  
  272.  Number followed by slash (/) represents number of bits significant in
  273.  IP address. That is, this example means
  274.  
  275.   o I'd like to use 192.244.177.38 as my side address, if it is possible.
  276.     But I also accept any IP address between 192.244.177.0 and 192.244.177.255.
  277.  
  278.   o I'd like to make him to use 192.244.177.2 as his side address.
  279.     But I also permit him to use any IP address between 192.244.176.0 and
  280.     192.244.191.255.
  281.  
  282.  Notes:
  283.  
  284.   o As you may have already noticed, 192.244.177.2 is equivalent to
  285.     say 192.244.177.2/32.
  286.  
  287.   o As an exception, 0 is equivalent to 0.0.0.0/0.
  288.     Means, I have no idea about IP address and obey what he says.
  289.  
  290.   o 192.244.177.2/0 means that I'll accept/permit any IP address but I'll
  291.     try to insist to use 192.244.177.2 at first.
  292.  
  293. 9. Connecting with service provider
  294.  
  295.   1) Describe provider's phone number in DialScript. Use ``set dial'' or
  296.      ``set phone'' command.
  297.  
  298.   2) Describle login procedure in LoginScript. Use ``set login'' command.
  299.  
  300.   3) Use ``set ifaddr'' command to define IP address.
  301.  
  302.      o If you know what IP address provider uses, then use it as his address.
  303.  
  304.      o If provider has assigned particular IP address for you, then use it
  305.        as my address.
  306.  
  307.      o If provider assigns your address dynamically, use 0 as my address.
  308.  
  309.      o If you have no info on IP addresses, then try
  310.  
  311.     set ifaddr 0 0
  312.  
  313.   4) If provider request you to use PAP/CHAP auth method, add next lines
  314.      into your ppp.conf.
  315.  
  316.     enable pap        (or enable chap)
  317.     disable chap        (or disable pap)
  318.     set authname MyName
  319.     set authkey MyPassword
  320.  
  321.  Please refer example/ppp.conf.iij for some real examples.
  322.  
  323. 10. Configuration files
  324.  
  325.  PPP may refers three files, ppp.conf, ppp.linkup and ppp.secret.
  326.  
  327.  These files are placed in /etc, but user can create his own files
  328.  under HOME directory as .ppp.conf, .ppp.linkup and .ppp.secret.
  329.  
  330.  PPP always try to consult to user's personal setup first.
  331.  
  332. 11. Logging facility
  333.  
  334.  PPP is able to generate following level log info.
  335.  
  336.    Phase    Phase transition log output
  337.    Chat        Generate Chat script trace log
  338.    LQM        Generate LQR report
  339.    LCP        Generate LCP/IPCP packet trace
  340.    TCP/IP    Dump TCP/IP packet
  341.    HDLC        Dump HDLC packet in hex
  342.    Async    Dump async level packet in hex
  343.  
  344.  ``set debug'' command allows you to set logging output level, and
  345.  multiple levels can be specified. Default is equivalent to
  346.  ``set debug phase lcp''.
  347.  
  348. 12. For more details
  349.  
  350.   o Please read doc/guide.tex for complete explanation. Well, it is not
  351.     useful for non-japanese readers, but examples in the document may
  352.     help you to guess.
  353.  
  354.   o Please read example configuration files.
  355.  
  356.   o Use ``help'', ``show ?'' and ``set ?'' command.
  357.  
  358.   o NetBSD and BSDI-1.0 has been supported in previous release, but no longer
  359.     supported in this release. Please contact to author if you need old
  360.     driver code.
  361.  
  362.